#ifndef __DRV_L1_ROTATOR_H__
#define __DRV_L1_ROTATOR_H__

#include "driver_l1.h"
#include "drv_l1_sfr.h"

// color mode
#define IMAGE_YUYV		0
#define IMAGE_YVYU		1
#define IMAGE_UYVY		2
#define IMAGE_VYUY		3
#define IMAGE_RGB565	4
#define IMAGE_GP420		5

// rotator mode
#define ROTATOR_90	0
#define ROTATOR_180 1
#define ROTATOR_270 2
#define ROTATOR_HORIZONTAL_MIRROR 3
#define ROTATOR_VERTICAL_MIRROR	4
#define ROTATOR_270_VERTICAL_MIRROR 5
#define ROTATOR_90_VORIZONTAL_MIRROR 6

extern INT32S	drv_l1_rotarot_format_set(INT32U format);
extern INT32S	drv_l1_rotator_pixel_set(INT32U w, INT32U h);
extern INT32S	drv_l1_rotator_module_enable(INT32U enable);
extern INT32S	drv_l1_rotator_mode_set(INT32U mode);
extern INT32S	drv_l1_rotator_burst16_enable(INT32U enable);
extern INT32S drv_l1_rotator_start(void (*isr_hook)(void));
extern INT32S	drv_l1_rotator_end_wait(INT32U wait);
extern INT32S	drv_l1_rotator_is_busy(void);
extern INT32S	drv_l1_rotator_input_buffer_set(INT32U buf);
extern INT32U	drv_l1_rotator_input_buffer_get(void);
extern INT32S	drv_l1_rotator_output_buffer_set(INT32U buf);
extern INT32U	drv_l1_rotator_output_buffer_get(void);
extern INT32S	drv_l1_rotator_init(void);
extern INT32S	drv_l1_rotator_line_buf_enable(INT32U en);
extern INT32S   drv_l1_rotator_sw_reset(void);
#endif // __DRV_L1_ROTATOR_H__
